﻿using System.Net.Mail;
using Netkk.Common.Interfaces.Services;
using Netkk.Common.Models;

namespace Netkk.Library.Services
{
    public class MessageService : IMessageService
    {
        private readonly ISendmailService sendmailService;

        private const string EmailExtensionText = @"


-----------------------
Diese E-Mail wurde über das .NET-Stammtisch E-Mail-Formular gesendet.
Gehen Sie auf Antworten um dem Absender direkt zu Antworten.


Mit freundlichen Grüßen
Peter Bucher 
Jürgen Gutsch";

        public MessageService(ISendmailService sendmailService)
        {
            this.sendmailService = sendmailService;
        }

        //protected bool ValidateMessage(Message message)
        //{
        //    if (String.IsNullOrEmpty(message.Subject))
        //    {
        //        validationDictionary.AddError("Subject", "Bitte einen Betreff eingeben");
        //    }

        //    if (String.IsNullOrEmpty(message.Text))
        //    {
        //        validationDictionary.AddError("Text", "Bitte eineen Text eingeben.");
        //    }

        //    return validationDictionary.IsValid;
        //}


        public bool SendMessage(Message message)
        {
            try
            {
                Send(message);
            }
            catch
            {
                return false;
            }
            return true;
        }

        private void Send(Message message)
        {
            sendmailService.Sender = new MailAddress("juergen@gutsch-online.de", ".NET Stammtisch");
            sendmailService.Sendmail(
                new MailAddress(message.ToUser.Email, message.ToUser.ToString()),
                message.Subject, 
                message.Text + EmailExtensionText,
                new MailAddress(message.FromUser.Email, message.FromUser.ToString()));
        }

    }

}
